#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
//https://www.luogu.com.cn/problem/UVA543#submit
using namespace std;

const int N = 1e6 + 10;

int p[N], cnt;
bool st[N];
void get_prime()
{
	for (int i = 2; i <= N; ++i)
	{
		if (!st[i])p[++cnt] = i;
		for (int j = 1; 1ll * p[j] * i <= N; ++j)
		{
			st[p[j] * i] = true;

			if (i % p[j] == 0)break;
		}
	}


}
void solve(int x)
{
	for (int i = 1; i <= cnt; ++i)
	{
		if (st[x - p[i]] == false)
		{
			printf("%d = %d + %d\n", x, p[i], x - p[i]);
			break;
		}
	}
}

int main()
{
	int x;
	get_prime();
	while (cin >> x)
	{
		if (x == 0)break;

		solve(x);
	}

	return 0;
}